Skip to content

Conversation

@KhaledKamalA
Copy link

@KhaledKamalA KhaledKamalA commented Oct 21, 2025

🎯 Goal

Improve the user experience and UI consistency by handling swipe behavior properly and aligning layouts across Channel Info and Search screens.

📝 Summary

Hide the options button on trailing swipe when there are no available actions.
Disable swipe gestures when no actions exist.
Add padding to list headers in Channel Info and Search screens for consistency.
Mark the channel creator with an “Owner” label.

🛠 Implementation

Updated the swipe logic to skip configuration when the actions list is empty.
Conditionally hid the trailing options button based on the available actions.
Unified the list header padding across Channel Info and Search views.
Added logic to identify the channel creator and display the Owner tag beside their name.

🎨 Showcase

Simulator Screenshot - iPhone 15 - 2025-10-29 at 13 39 32 Simulator Screenshot - iPhone 15 - 2025-10-29 at 13 39 44 Simulator Screenshot - iPhone 15 - 2025-10-29 at 13 40 02 Simulator Screenshot - iPhone 15 - 2025-10-29 at 13 41 05

🧪 Manual Testing Notes

  • Open Channel Info and Search screens → verify header padding is consistent.
  • Swipe on participant rows → ensure swipe is disabled when there are no actions.
  • Confirm the options button is hidden when no swipe actions are available.
  • Check that the channel creator displays the “Owner” label correctly.

☑️ Contributor Checklist


  • This change should be manually QAed

@KhaledKamalA KhaledKamalA requested a review from a team as a code owner October 21, 2025 09:00
@nuno-vieira
Copy link
Member

Hi @KhaledKamalA, thank you for the PR. Since this changes a lot of things, can you please fill out the whole PR template? And include screenshots and how we can manually test this.

Thank you!

Copy link
Member

@nuno-vieira nuno-vieira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the PR. We would like to have more context on this one, and why are you changing this.

Comment on lines +142 to +143
) as? TrailingSwipeActionsView
return view?.hasActions ?? true
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are we changing this?

*/
extension ChannelCapability {
/// Ability to add more Options the channel.
public static let moreOptionsChannel: Self = "moreOptions-channel"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where did you see this capability? I can't find it here: https://getstream.io/chat/docs/ios-swift/channel_capabilities/

Copy link
Author

@KhaledKamalA KhaledKamalA Oct 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added .moreOptionsChannel as a custom capability to control the visibility of the “more options” button when swiping on a channel in the list.
It’s not part of Stream’s built-in capabilities — it’s used internally to show or hide the action button based on our specific use case.

Is there a recommended or built-in way in the Stream SDK to achieve this behavior (conditionally hiding this button) without introducing a custom capability?

UI Update – Channel More Options Button

After Change

After Change Screenshot

Before Change

Simulator Screenshot - iPhone 15 - 2025-10-29 at 12 07 29

onDismiss: @escaping () -> Void,
onError: @escaping (Error) -> Void
) -> ParticipantAction {
) -> ParticipantAction? {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a breaking change of the SDK, so we can't change this at the moment. Can you find an alternative?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants